package com.sf.algo.solve.domain;

import java.util.List;
import java.util.Map;

import org.optaplanner.core.api.domain.solution.PlanningEntityCollectionProperty;
import org.optaplanner.core.api.domain.solution.PlanningScore;
import org.optaplanner.core.api.domain.solution.PlanningSolution;
import org.optaplanner.core.api.domain.valuerange.ValueRangeProvider;
import org.optaplanner.core.api.score.buildin.hardsoftlong.HardSoftLongScore;

@PlanningSolution
public class Solution {

	@PlanningScore
	private HardSoftLongScore score;

	@PlanningEntityCollectionProperty
	@ValueRangeProvider(id = "personRange")
	private List<Person> personList;

	@PlanningEntityCollectionProperty
	@ValueRangeProvider(id = "goodsRange")
	private List<Goods> goodsList;

	private Map<String, Integer> distanceMap;
	
	private int stepLimit;
	
	public int getStepLimit() {
		return stepLimit;
	}

	public void setStepLimit(int stepLimit) {
		this.stepLimit = stepLimit;
	}

	public HardSoftLongScore getScore() {
		return score;
	}

	public void setScore(HardSoftLongScore score) {
		this.score = score;
	}

	public List<Person> getPersonList() {
		return personList;
	}

	public void setPersonList(List<Person> personList) {
		this.personList = personList;
	}

	public List<Goods> getGoodsList() {
		return goodsList;
	}

	public Map<String, Integer> getDistanceMap() {
		return distanceMap;
	}

	public void setDistanceMap(Map<String, Integer> distanceMap) {
		this.distanceMap = distanceMap;
	}

	public void setGoodsList(List<Goods> goodsList) {
		this.goodsList = goodsList;
	}

}
